package models

import (
	"driver_srv/basic/config"
	"gorm.io/gorm"
	"time"
)

// 城市表
type City struct {
	Id        uint32         `gorm:"column:id;type:int UNSIGNED;comment:城市id;primaryKey;not null;" json:"id"`                                  // 城市id
	City      string         `gorm:"column:city;type:varchar(255);comment:城市;not null;" json:"city"`                                           // 城市
	CreatedAt time.Time      `gorm:"column:created_at;type:datetime(3);comment:创建时间;not null;default:CURRENT_TIMESTAMP(3);" json:"created_at"` // 创建时间
	UpdatedAt time.Time      `gorm:"column:updated_at;type:datetime(3);comment:修改时间;not null;default:CURRENT_TIMESTAMP(3);" json:"updated_at"` // 修改时间
	DeletedAt gorm.DeletedAt `gorm:"column:deleted_at;type:datetime;comment:删除时间;default:NULL;" json:"deleted_at"`                             // 删除时间
}

func (c *City) TableName() string {
	return "city"
}

// 查找城市是否存在
func (c *City) FindCityById() error {
	return config.DB.Where("id = ?", c.Id).Limit(1).Find(&c).Error
}

// FindList 查询城市列表（按更新时间倒序）
func (c *City) FindList() ([]City, error) {
    var list []City
    err := config.DB.Order("updated_at DESC").Find(&list).Error
    return list, err
}